package Classes.GameUtils
{
	import flash.filters.ColorMatrixFilter;
	
	import gs.motion.ColorMatrix;

	/** 
	 * @author thy
	 * @version 1.0.0 
	 * 创建时间：May 11, 2012 5:22:58 PM 
	 */ 
	public class GU_Color
	{
		private static var _instance:GU_Color;
		public function GU_Color(){	}
		
		public static function get instance():GU_Color
		{
			if(!_instance)_instance=new GU_Color();
			return _instance;
		}
		
		/**
		 *  【泛用】置为不可用时灰色滤镜，色彩较暗 
		 * @return  Array
		 */		
		public static function  getSmallDarker():Array
		{
			var matrix:Array = new Array();
			
			matrix = matrix.concat([0.3086, 0.6094, 0.082, 0, 0]); // red
			
			matrix = matrix.concat([0.3086, 0.6094, 0.082, 0, 0]); // green
			
			matrix = matrix.concat([0.3086, 0.6094, 0.082, 0, 0]); // blue
			
			matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
			
			var gray:ColorMatrixFilter = new ColorMatrixFilter(matrix);
			
			var filtersArray:Array = new Array(gray);
			return filtersArray;
		}
		
		/**
		 * 调整亮度 
		 * @param num 设置亮度值，值的大小是 -255--255   0为中间值，向右为亮向左为暗。
		 * @return 
		 * 
		 */			
		public function changeLD(num:int):ColorMatrixFilter
		{
			var ld_Matrix:ColorMatrix=new ColorMatrix();
			
			var ld_Filter:ColorMatrixFilter=new ColorMatrixFilter();
			
			ld_Matrix.SetBrightnessMatrix(num);  //设置亮度值，值的大小是 -255--255   0为中间值，向右为亮向左为暗。
			
			ld_Filter.matrix = ld_Matrix.GetFlatArray();
			
			//		ld_MC.filters = [ld_Filter];
			
			//ld_MC.filters = [];//去除滤镜
			return ld_Filter;
		}
		
		
		/**
		 * 调整对比度 
		 * @param num  设置对比度值，值的大小是 -255--255  127.5为中间值，向右对比鲜明向左对比偏暗。
		 * @return 
		 * 
		 */		
		public function changeDBD(num:int):ColorMatrixFilter
		{
			var db_Matrix:ColorMatrix=new ColorMatrix();
			
			var db_Filter:ColorMatrixFilter=new ColorMatrixFilter();
			
			db_Matrix.SetContrastMatrix(num);  //设置对比度值，值的大小是 -255--255  127.5为中间值，向右对比鲜明向左对比偏暗。
			
			db_Filter.matrix = db_Matrix.GetFlatArray();
			
//			db_MC.filters = [db_Filter];
			
			//db_MC.filters = [];//去除滤镜
			return db_Filter;
		}
		
		
		/**
		 * 调整饱和度
		 * @param num 设置饱和度值，值的大小是 -255--255   1为中间值，0为灰度值（即黑白相片）。
		 * @return 
		 * 
		 */		
		public function changeBHD(num:int):ColorMatrixFilter
		{
			//**调整饱和度**//
			
			var bh_Matrix:ColorMatrix=new ColorMatrix();
			
			var bh_Filter:ColorMatrixFilter=new ColorMatrixFilter();
			
			bh_Matrix.SetSaturationMatrix(num);  //设置饱和度值，值的大小是 -255--255   1为中间值，0为灰度值（即黑白相片）。
			
			bh_Filter.matrix = bh_Matrix.GetFlatArray();
			
//			bh_MC.filters = [bh_Filter];
			
			//bh_MC.filters = [];//去除滤镜
			return bh_Filter;
		}
		
		
		/**
		 * 调整色相
		 * @param num  设置色相值，值的大小是 -255--255  0为中间值，向右向左一试便知。
		 * @return 
		 */	
		public function changeSX(num:int):ColorMatrixFilter
		{
			//**调整色相**//
			
			var sx_Matrix:ColorMatrix=new ColorMatrix();
			
			var sx_Filter:ColorMatrixFilter=new ColorMatrixFilter();
			
			sx_Matrix.SetHueMatrix(num);  //设置色相值，值的大小是 -255--255  0为中间值，向右向左一试便知。
			
			sx_Filter.matrix = sx_Matrix.GetFlatArray();
			
//			sx_MC.filters = [sx_Filter];
			
			//sx_MC.filters = [];//去除滤镜
			return sx_Filter;
		}
		
		
	}
}
